Skip to content

feat: add a light weight updatechecker.#1

Merged
broccoli-97 merged 5 commits intomasterfrom
dev
Mar 13, 2026
Merged

feat: add a light weight updatechecker.#1
broccoli-97 merged 5 commits intomasterfrom
dev

Conversation

@broccoli-97
Copy link
Copy Markdown
Owner

New files:

  • src/core/UpdateChecker.h — QObject subclass with checkForUpdates(bool manual), updateAvailable/upToDate/checkFailed signals, and static isNewerVersion() semver comparator
  • src/core/UpdateChecker.cpp — Queries the GitHub Releases API, parses tag_name + html_url, strips v prefix, compares against applicationVersion()

Modified files:

  • CMakeLists.txt — Added Network to find_package, Qt6::Network to target_link_libraries, registered the two new source files
  • AppSettings.h/.cpp — Added checkForUpdatesEnabled() / setCheckForUpdatesEnabled(bool) with key "updates/checkOnStartup" (default: true)
  • MainWindow.h/.cpp — Added UpdateChecker* member, wired signals in constructor, 3s delayed auto-check if enabled, "Check for Updates..." action in Help menu before About, showUpdateDialog() with version info and link to GitHub
  • SettingsDialog.h/.cpp — Added "Updates" group with "Check for updates on startup" checkbox

 New files:
  - src/core/UpdateChecker.h — QObject subclass with checkForUpdates(bool manual),
  updateAvailable/upToDate/checkFailed signals, and static isNewerVersion() semver comparator
  - src/core/UpdateChecker.cpp — Queries the GitHub Releases API, parses tag_name + html_url, strips v prefix,
   compares against applicationVersion()

  Modified files:
  - CMakeLists.txt — Added Network to find_package, Qt6::Network to target_link_libraries, registered the two
  new source files
  - AppSettings.h/.cpp — Added checkForUpdatesEnabled() / setCheckForUpdatesEnabled(bool) with key
  "updates/checkOnStartup" (default: true)
  - MainWindow.h/.cpp — Added UpdateChecker* member, wired signals in constructor, 3s delayed auto-check if
  enabled, "Check for Updates..." action in Help menu before About, showUpdateDialog() with version info and
  link to GitHub
  - SettingsDialog.h/.cpp — Added "Updates" group with "Check for updates on startup" checkbox
  Smoothly scroll the canvas to reveal newly created nodes (Enter/Ctrl+Enter)
  using animated scrollbar transitions, and animate zoomToFit after auto-layout
  so the zoom+pan feels connected rather than jarring.

  - MindMapView::ensureNodeVisible(): snapshot–ensureVisible–restore–animate
    pattern on scrollbar values (300ms OutCubic)
  - MindMapView::zoomToFit(): interpolate scale and center point from current
    to target (400ms OutCubic) instead of snapping instantly
  - MindMapScene: call ensureNodeVisible in addChildToSelected/addSiblingToSelected,
    call zoomToFit on autoLayout animation finish
  - stopAnimations() helper prevents overlapping animations
…support

  - Add language() / setLanguage() to AppSettings (stored under "appearance/language")
  - Add Language combo box (English / 简体中文) to SettingsDialog with restart hint
  - Install QTranslator in main.cpp before MainWindow creation for both Qt and app translations
  - Wrap all user-visible strings with tr() across 8 source files (MainWindow, FileManager,
    SettingsDialog, AboutDialog, MindMapScene, StartPage, TabManager, OutlineWidget)
  - Add LinguistTools to CMakeLists.txt with qt_add_translations() for .ts → .qm compilation
  - Create translations/ymind_zh_CN.ts with 139 complete Chinese translations
Warning: Node.js 20 actions are deprecated.
@broccoli-97 broccoli-97 merged commit 792fba8 into master Mar 13, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant